﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WPFSchematics.Definition.Entities;


namespace WPFSchematics.Definition.Shapes
{
    /// <summary>
    /// 边。 表示具有联系的两个节点。两个节点具有联系的前提如下：
    /// 1、若一个线中的两个端子分别属于不同的两个节点。
    /// 2、除1、情况外两个节点。
    /// 上述两种情况都可以且仅能建立一个包含着两个节点的边。
    /// 注意：边目前仅用在布局算法中，不影响图元联动效果。
    /// </summary>
    public interface IShapeLayoutEdge:IShapeProvider
    {
        /// <summary>
        /// 长度系数，用于弹性布局算法中。
        /// </summary>
        double Length { get; set; }
        /// <summary>
        /// 节点1。
        /// </summary>
        IShapeLayoutNode ShapeNode1{get;}
        /// <summary>
        /// 节点2。
        /// </summary>
        IShapeLayoutNode ShapeNode2{get;}
        /// <summary>
        /// 边的依据设备，通常为线型设备或为空。
        /// </summary>
        List<IShapeFeature> RefShapeFeatures { get;}
    }
}
